arm: add build time asserts for various virtual address aligment constraints
authorIan Campbell <ian.campbell@citrix.com>
Wed, 24 Apr 2013 10:54:00 +0000 (11:54 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 24 Apr 2013 15:55:16 +0000 (16:55 +0100)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
xen/arch/arm/mm.c

index 3cb852b4571471c82b9b4164c779557e5aeaad9f..656aa82b4b65e51a824a124f5de143de5c756585 100644 (file)
@@ -74,6 +74,17 @@ unsigned long total_pages;
 
 extern char __init_begin[], __init_end[];
 
+/* Checking VA memory layout alignment. */
+static inline void check_memory_layout_alignment_constraints(void) {
+    /* 2MB aligned regions */
+    BUILD_BUG_ON(XEN_VIRT_START & ~SECOND_MASK);
+    BUILD_BUG_ON(FIXMAP_ADDR(0) & ~SECOND_MASK);
+    BUILD_BUG_ON(BOOT_MISC_VIRT_START & ~SECOND_MASK);
+    /* 1GB aligned regions */
+    BUILD_BUG_ON(XENHEAP_VIRT_START & ~FIRST_MASK);
+    BUILD_BUG_ON(DOMHEAP_VIRT_START & ~FIRST_MASK);
+}
+
 void dump_pt_walk(lpae_t *first, paddr_t addr)
 {
     lpae_t *second = NULL, *third = NULL;